package exerciciojsf.mbean;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import exerciciojsf.armazenamento.Cadastros;
import exerciciojsf.modelo.Usuario;

@ManagedBean(name = "gerenciadorLogin")
@SessionScoped
public class GerenciadorLogin {
	private Usuario usuario;
	private boolean usuarioLogado;
	private String msg;

	public GerenciadorLogin() {
		usuario = new Usuario();
		usuarioLogado = false;
	}

	public String getMsg() {
		String msgTmp = msg;
		msg = null;
		return msgTmp;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public boolean isUsuarioLogado() {
		return usuarioLogado;
	}

	public String efetuarLogin() {
		if (validarLoginUsuario(usuario)) {
			logarUsuario(usuario);
			return "index";
		} else {
			msg = "Nome de usuário ou senha incorretos";
			return "erroLogin";
		}
	}
	
	public void logarUsuario(Usuario usuario){
		setUsuario(Cadastros.getInstance().getUsuario(usuario.getLogin()));
		usuarioLogado = true;
	}

	private boolean validarLoginUsuario(Usuario usuario) {
		return Cadastros.getInstance().validaUsuario(usuario);
	}

	public String efetuarLogout() {
		removerUsuario();
		usuarioLogado = false;
		msg = "Logout efetuado com sucesso.";
		return "logout";
	}

	private void removerUsuario() {
		this.usuario = new Usuario();
	}
}
